IAM Identity Center の許可セットは「管理アカウント用」と「それ以外用」で分けて使おう
AWSのマルチアカウント管理で役立つノウハウ、 [マルチアカウントTIPS] をお届けします。
今回は AWS IAM Identity Center の許可セットに関する小ネタです。 内容はタイトルのとおりです。
そもそも許可セットって何?
AWS IAM Identity Center の 許可セット(Permission Set) は AWSアカウントへのアクセス権(など)を定義するリソース です。 もともとは "アクセス権限セット" と呼ばれていました。
IAM Identity Center の割り当て(Assignment)に必要な1パラメータとなります。
なんで分けたほうが良いの?
一言でいうと [管理アカウントへ割り当てている許可セット] が委任先アカウントで更新できなくなる からです。
もう少し詳細
以下アップデートから、IAM Identity Center の委任管理が可能になっています。
ただ、委任先アカウントでできることには一部制限があります。 いわゆる 「管理アカウントへのアクセス権限を変えうるコト」 はできなくなります。
※制限の詳細は以下ブログやドキュメントを参照ください。
- AWS SSO の管理委任機能を利用した際に委任先アカウントでできない事を整理してみた | DevelopersIO
- 委任された管理 - AWS IAM Identity Center (successor to AWS Single Sign-On)
なぜ更新できないようにしている?
なぜ更新できないようにしているのか。たぶんこんな感じ(↓)だと思います。
- 管理アカウントはいわゆる特権的なAWSアカウント
- その「特権的なAWSアカウントへのアクセス権限」をメンバーアカウントから変えられてしまうのは "マズい"
例えば、もし更新を許してしまうと、 「今まで管理アカウントへ AdministratorAccess でアクセスしていたけど、いつの間にか ReadOnlyAccess 権限でしかアクセスできなくなった!」 みたいなことを委任先アカウントから起こせるようになります。
それは "マズい" ので制限しているのでしょう。
確かめる
「管理アカウントへの割り当てが "無い" 許可セット」を更新する
以下許可セットを委任先アカウントで更新します。
以下のように、特に問題なく更新できましたね。
「管理アカウントへの割り当てが "有る" 許可セット」ではどう見えるか
以下のように、そもそも「編集」することができなくなっていますね。
IaC(CloudFormation や Terraform など)管理している場合は更新時にエラーになります。 「管理アカウント用の許可セット」は管理アカウント上で、 「メンバーアカウント用の許可セット」は委任先アカウント上で管理するのが良いでしょう。
おわりに
以上、 IAM Identity Center 設計の TIPS を書いてみました。
マルチアカウント環境下ではユーザー・アクセスの集中管理が課題によく挙がります。 IAM Identity Center は課題解決に役立つ便利サービスなので、ぜひ使っていきたいですね。